package com.smart.community.user.vo;

import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 登录响应VO
 * 
 * @author Wu.Liang
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class LoginVO implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * Token
     */
    private String token;

    /**
     * 刷新Token
     */
    private String refreshToken;

    /**
     * Token过期时间（秒）
     */
    private Integer expireIn;

    /**
     * 用户ID
     */
    private Long userId;

    /**
     * 用户名
     */
    private String username;

    /**
     * 真实姓名
     */
    private String realName;

    /**
     * 昵称
     */
    private String nickname;

    /**
     * 头像
     */
    private String avatar;

    /**
     * 用户类型
     */
    private String userType;

    /**
     * 用户类型名称
     */
    private String userTypeName;

    /**
     * 最后登录时间
     */
    private LocalDateTime lastLoginTime;

    /**
     * 最后登录IP
     */
    private String lastLoginIp;

    /**
     * 用户信息
     */
    private UserVO user;

    /**
     * 菜单权限列表
     */
    private List<String> menuPermissions;

    /**
     * 权限标识列表
     */
    private List<String> permissions;

    /**
     * 角色标识列表
     */
    private List<String> roles;

} 